In wire bound or wireless communications, the transmitted signal may need to be decoded upon reception. In many communication standards, such as WCDMA/LTE, the signal is transmitted in transport blocks which may then, if needed, be segmented into code blocks. As communication standards evolve over time, more data is transmitted per time unit, e.g. due to higher orders of modulation, such as QAM16 and QAM64. While maximum transport block size grew with evolving standards, the maximum code block sizes remained the same, 5114 for WCDMA and 6144 for LTE, resulting in an increased number of code blocks per transport block.
Upon reception of a transport block, soft-bits are generated for the transmitted bits of the transport block, defining the accuracy of the received transmitted bits.
A decoder is used to iteratively decode the transmitted bits of the received transport block, one code block at the time. In order to increase the bandwidth and/or reduce the power consumption of the communication path, the transport block is preferably decoded using as few iterations as possible, without failing to decode it. However, code blocks of a transport block may be more or less easy to decode and often a fixed number of iterations are assigned to each code block, which number is presumed to be sufficient also for the more difficult code blocks, whereby superfluous iterations may be assigned to code blocks more easy to decode and too few iterations may be assigned to the more difficult ones.
Perttu Salmela et al. discloses in their article “On Allocation of Turbo Decoder Iterations” from the 14th IEEE 2003 International Symposium on Personal, Indoor and Mobile Radio Communication Proceedings that, since the number of required iterations for each code block is not known beforehand, an additional buffering of incoming code blocks can be used to allow utilization of unused iterations. This is because the code blocks arrive to the input buffer at a constant rate, whereas the decoding rate of the blocks varies.